const jwt = require("jsonwebtoken");
const crypto = require("crypto");

module.exports = {
    /**
     * 生成 token 的方法
     */
    genToken(user) {
        return jwt.sign(user, this.app.config.keys);
    },
    /**
     * 校验并解密 token 中保存的内容
     * @param {string} token 待校验的 token
     */
    checkToken(token) {
        return jwt.verify(token, this.app.config.keys);
    },
    /**
     * 密码编码器
     * @param {string} raw_password 要加密的明文密码
     */
    passwordEncoder: function (raw_password) {
        return crypto
            .createHmac("sha256", this.app.config.keys)
            .update(raw_password)
            .digest("hex");
    },
};
